﻿namespace ConsoleApp1.advance;

// 索引器（Indexer） 允许一个对象可以像数组一样被索引。
// 当您为类定义一个索引器时，该类的行为就会像一个 虚拟数组（virtual array） 一样。您可以使用数组访问运算符（[ ]）来访问该类的实例。

class IndexedNames{
    private string[] namelist = new string[size];
    static public int size = 10;
    public IndexedNames(){
        for (int i = 0; i < size; i++){          
            namelist[i] = "N. A.";       
        }       
    }
    public string this[int index]{
        get{
            string tmp;
            if( index >= 0 && index <= size-1 ){
                tmp = namelist[index];
            }
            else{
                tmp = "";
            }
            return (tmp);
        }
        set{
            if( index >= 0 && index <= size-1 ){
                namelist[index] = value;
            }
        }
    }
    public static void TestMain(){
        IndexedNames names = new IndexedNames();
        names[0] = "Zara";
        names[1] = "Riz";
        names[2] = "Nuha";
        names[3] = "Asif";
        names[4] = "Davinder";
        names[5] = "Sunil";
        names[6] = "Rubic";
        for ( int i = 0; i < IndexedNames.size; i++ ){             
            Console.WriteLine(names[i]);
        }
        Console.ReadKey();
    }
}